package com.wn.login.repository

import androidx.lifecycle.LiveData
import com.wn.login.repository.data.LoginReq
import com.wn.login.repository.data.RegisterRsp
import com.wn.service.db.UserInfo
import com.wn.service.net.BaseResponse

/**
 * @Author: wn
 * @Date: 2023/3/31 17:06
 * @Description: 登录模块相关的 APi 仓库 接口
 * 是否 注册过  登陆是否成功  俩 liveData 定义在 仓库中
 */
interface ILoginRepository {

  /**
   * 手机号是否注册过
   */
  val registerRsp: LiveData<RegisterRsp>

  /**
   * 登陆请求
   */
//  val loginRsp: LiveData<UserInfo>

  /**
   * 校验手机号是否注册、合法
   * @param account String -- 手机号
   */
  suspend fun checkRegister(account: String)

  /**
   * 手机号合法的基础上，调用登录，获取登录结果token
   * @param body LoginReq -- 登录模块相关的请求 数据类
   */
  suspend fun requestLogin(body: LoginReq): Result<BaseResponse<UserInfo>>

  /**
   * 添加用户
   * @param userInfo 多个同类型参数
   */
  suspend fun insertUser(vararg userInfo: UserInfo)
}